<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>dSFMT: dSFMT.c File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">dSFMT
   &#160;<span id="projectnumber">2.2</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">dSFMT.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>double precision SIMD-oriented Fast Mersenne Twister (dSFMT) based on IEEE 754 format.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &quot;dSFMT-params.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="d_s_f_m_t-common_8h_source.html">dSFMT-common.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:afe0e4e5727d9188f5ae1632da731d412"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#afe0e4e5727d9188f5ae1632da731d412">ini_func1</a> (uint32_t x)</td></tr>
<tr class="memdesc:afe0e4e5727d9188f5ae1632da731d412"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function represents a function used in the initialization by init_by_array.  <a href="#afe0e4e5727d9188f5ae1632da731d412"></a><br/></td></tr>
<tr class="memitem:a8da6197e2fe073abb9016e3cf4822807"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a8da6197e2fe073abb9016e3cf4822807">ini_func2</a> (uint32_t x)</td></tr>
<tr class="memdesc:a8da6197e2fe073abb9016e3cf4822807"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function represents a function used in the initialization by init_by_array.  <a href="#a8da6197e2fe073abb9016e3cf4822807"></a><br/></td></tr>
<tr class="memitem:aa56a7244d54e2e8bb162a91ebe098e65"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#aa56a7244d54e2e8bb162a91ebe098e65">gen_rand_array_c1o2</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, <a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *array, int size)</td></tr>
<tr class="memdesc:aa56a7244d54e2e8bb162a91ebe098e65"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format.  <a href="#aa56a7244d54e2e8bb162a91ebe098e65"></a><br/></td></tr>
<tr class="memitem:a0002bc60cd5c3227bd12f478a32463ba"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a0002bc60cd5c3227bd12f478a32463ba">gen_rand_array_c0o1</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, <a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *array, int size)</td></tr>
<tr class="memdesc:a0002bc60cd5c3227bd12f478a32463ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format.  <a href="#a0002bc60cd5c3227bd12f478a32463ba"></a><br/></td></tr>
<tr class="memitem:a0905d57b8333da366b25773f0b3c5326"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a0905d57b8333da366b25773f0b3c5326">gen_rand_array_o0c1</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, <a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *array, int size)</td></tr>
<tr class="memdesc:a0905d57b8333da366b25773f0b3c5326"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format.  <a href="#a0905d57b8333da366b25773f0b3c5326"></a><br/></td></tr>
<tr class="memitem:a2bad2f5ded750e7c250a121cdb61166e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a2bad2f5ded750e7c250a121cdb61166e">gen_rand_array_o0o1</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, <a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *array, int size)</td></tr>
<tr class="memdesc:a2bad2f5ded750e7c250a121cdb61166e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format.  <a href="#a2bad2f5ded750e7c250a121cdb61166e"></a><br/></td></tr>
<tr class="memitem:a6ceeab85133c3fd7ec95aa85523ff544"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof</a> (int i)</td></tr>
<tr class="memdesc:a6ceeab85133c3fd7ec95aa85523ff544"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function simulate a 32-bit array index overlapped to 64-bit array of LITTLE ENDIAN in BIG ENDIAN machine.  <a href="#a6ceeab85133c3fd7ec95aa85523ff544"></a><br/></td></tr>
<tr class="memitem:a95a1673e2b7b3a48a7eab8fa19e18e1d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a95a1673e2b7b3a48a7eab8fa19e18e1d">initial_mask</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt)</td></tr>
<tr class="memdesc:a95a1673e2b7b3a48a7eab8fa19e18e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array to fit the IEEE 754 format.  <a href="#a95a1673e2b7b3a48a7eab8fa19e18e1d"></a><br/></td></tr>
<tr class="memitem:a8c0334eb83e12d16f2cfe48929114e44"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a8c0334eb83e12d16f2cfe48929114e44">period_certification</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt)</td></tr>
<tr class="memdesc:a8c0334eb83e12d16f2cfe48929114e44"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function certificate the period of 2^{SFMT_MEXP}-1.  <a href="#a8c0334eb83e12d16f2cfe48929114e44"></a><br/></td></tr>
<tr class="memitem:a3d69e801f1ee2fbdc3b596fab46e179e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a3d69e801f1ee2fbdc3b596fab46e179e">convert_c0o1</a> (<a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *w)</td></tr>
<tr class="memdesc:a3d69e801f1ee2fbdc3b596fab46e179e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function converts the double precision floating point numbers which distribute uniformly in the range [1, 2) to those which distribute uniformly in the range [0, 1).  <a href="#a3d69e801f1ee2fbdc3b596fab46e179e"></a><br/></td></tr>
<tr class="memitem:a6c110f420568ad02e2709f790d3178ef"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a6c110f420568ad02e2709f790d3178ef">convert_o0c1</a> (<a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *w)</td></tr>
<tr class="memdesc:a6c110f420568ad02e2709f790d3178ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function converts the double precision floating point numbers which distribute uniformly in the range [1, 2) to those which distribute uniformly in the range (0, 1].  <a href="#a6c110f420568ad02e2709f790d3178ef"></a><br/></td></tr>
<tr class="memitem:a9fb54ba8ca524bc29724b333b6a37cc2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a9fb54ba8ca524bc29724b333b6a37cc2">convert_o0o1</a> (<a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *w)</td></tr>
<tr class="memdesc:a9fb54ba8ca524bc29724b333b6a37cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function converts the double precision floating point numbers which distribute uniformly in the range [1, 2) to those which distribute uniformly in the range (0, 1).  <a href="#a9fb54ba8ca524bc29724b333b6a37cc2"></a><br/></td></tr>
<tr class="memitem:af181eeb77513e5a399dd2c585cfaa055"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#af181eeb77513e5a399dd2c585cfaa055">dsfmt_get_idstring</a> (void)</td></tr>
<tr class="memdesc:af181eeb77513e5a399dd2c585cfaa055"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the identification string.  <a href="#af181eeb77513e5a399dd2c585cfaa055"></a><br/></td></tr>
<tr class="memitem:af49cc1703b4cc1d0bffbd895917c303a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#af49cc1703b4cc1d0bffbd895917c303a">dsfmt_get_min_array_size</a> (void)</td></tr>
<tr class="memdesc:af49cc1703b4cc1d0bffbd895917c303a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the minimum size of array used for <b>fill_array</b> functions.  <a href="#af49cc1703b4cc1d0bffbd895917c303a"></a><br/></td></tr>
<tr class="memitem:afccb1e4d75cea7ffe3b45cba53d1e5e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#afccb1e4d75cea7ffe3b45cba53d1e5e0">dsfmt_gen_rand_all</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt)</td></tr>
<tr class="memdesc:afccb1e4d75cea7ffe3b45cba53d1e5e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the internal state array with double precision floating point pseudorandom numbers of the IEEE 754 format.  <a href="#afccb1e4d75cea7ffe3b45cba53d1e5e0"></a><br/></td></tr>
<tr class="memitem:abeef257039f3b95b7475bbecdb521b89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#abeef257039f3b95b7475bbecdb521b89">dsfmt_fill_array_close1_open2</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, double array[], int size)</td></tr>
<tr class="memdesc:abeef257039f3b95b7475bbecdb521b89"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates double precision floating point pseudorandom numbers which distribute in the range [1, 2) to the specified array[] by one call.  <a href="#abeef257039f3b95b7475bbecdb521b89"></a><br/></td></tr>
<tr class="memitem:a6ad6f12b9a47ea89ceab693b1eec5079"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a6ad6f12b9a47ea89ceab693b1eec5079">dsfmt_fill_array_open_close</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, double array[], int size)</td></tr>
<tr class="memdesc:a6ad6f12b9a47ea89ceab693b1eec5079"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates double precision floating point pseudorandom numbers which distribute in the range (0, 1] to the specified array[] by one call.  <a href="#a6ad6f12b9a47ea89ceab693b1eec5079"></a><br/></td></tr>
<tr class="memitem:a243fb9ed1b61233f3dba4ab15c541eb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a243fb9ed1b61233f3dba4ab15c541eb0">dsfmt_fill_array_close_open</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, double array[], int size)</td></tr>
<tr class="memdesc:a243fb9ed1b61233f3dba4ab15c541eb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates double precision floating point pseudorandom numbers which distribute in the range [0, 1) to the specified array[] by one call.  <a href="#a243fb9ed1b61233f3dba4ab15c541eb0"></a><br/></td></tr>
<tr class="memitem:aeed310e17f9f652c1b0ec86298c834c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#aeed310e17f9f652c1b0ec86298c834c1">dsfmt_fill_array_open_open</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, double array[], int size)</td></tr>
<tr class="memdesc:aeed310e17f9f652c1b0ec86298c834c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates double precision floating point pseudorandom numbers which distribute in the range (0, 1) to the specified array[] by one call.  <a href="#aeed310e17f9f652c1b0ec86298c834c1"></a><br/></td></tr>
<tr class="memitem:a2fa6a84095a280a4e1556415f3d4f259"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a2fa6a84095a280a4e1556415f3d4f259">dsfmt_chk_init_gen_rand</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, uint32_t seed, int mexp)</td></tr>
<tr class="memdesc:a2fa6a84095a280a4e1556415f3d4f259"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array with a 32-bit integer seed.  <a href="#a2fa6a84095a280a4e1556415f3d4f259"></a><br/></td></tr>
<tr class="memitem:a91cef405a85910d4e56b4a1d10fb89f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array</a> (<a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *dsfmt, uint32_t init_key[], int key_length, int mexp)</td></tr>
<tr class="memdesc:a91cef405a85910d4e56b4a1d10fb89f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array, with an array of 32-bit integers used as the seeds.  <a href="#a91cef405a85910d4e56b4a1d10fb89f1"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:adfee3c4c3505ddcfc334251f94968737"><td class="memItemLeft" align="right" valign="top"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#adfee3c4c3505ddcfc334251f94968737">dsfmt_global_data</a></td></tr>
<tr class="memdesc:adfee3c4c3505ddcfc334251f94968737"><td class="mdescLeft">&#160;</td><td class="mdescRight">dsfmt internal state vector  <a href="#adfee3c4c3505ddcfc334251f94968737"></a><br/></td></tr>
<tr class="memitem:a3720bab32cfc7fed812b49d96cde8636"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="d_s_f_m_t_8c.html#a3720bab32cfc7fed812b49d96cde8636">dsfmt_mexp</a> = <a class="el" href="d_s_f_m_t_8h.html#aeda2790c35e4e205219e3c0ef1a2dd0a">DSFMT_MEXP</a></td></tr>
<tr class="memdesc:a3720bab32cfc7fed812b49d96cde8636"><td class="mdescLeft">&#160;</td><td class="mdescRight">dsfmt mexp for check  <a href="#a3720bab32cfc7fed812b49d96cde8636"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>double precision SIMD-oriented Fast Mersenne Twister (dSFMT) based on IEEE 754 format. </p>
<dl class="section author"><dt>Author:</dt><dd>Mutsuo Saito (Hiroshima University) </dd>
<dd>
Makoto Matsumoto (Hiroshima University)</dd></dl>
<p>Copyright (C) 2007,2008 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. All rights reserved.</p>
<p>The new BSD License is applied to this software, see LICENSE.txt </p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a3d69e801f1ee2fbdc3b596fab46e179e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a3d69e801f1ee2fbdc3b596fab46e179e">convert_c0o1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>w</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function converts the double precision floating point numbers which distribute uniformly in the range [1, 2) to those which distribute uniformly in the range [0, 1). </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">w</td><td>128bit stracture of double precision floating point numbers (I/O) </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="union_w128___t.html#af1781b30d4052a0832fb7e7cd992cb75">W128_T::d</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a0002bc60cd5c3227bd12f478a32463ba">gen_rand_array_c0o1()</a>.</p>

</div>
</div>
<a class="anchor" id="a6c110f420568ad02e2709f790d3178ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a6c110f420568ad02e2709f790d3178ef">convert_o0c1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>w</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function converts the double precision floating point numbers which distribute uniformly in the range [1, 2) to those which distribute uniformly in the range (0, 1]. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">w</td><td>128bit stracture of double precision floating point numbers (I/O) </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="union_w128___t.html#af1781b30d4052a0832fb7e7cd992cb75">W128_T::d</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a0905d57b8333da366b25773f0b3c5326">gen_rand_array_o0c1()</a>.</p>

</div>
</div>
<a class="anchor" id="a9fb54ba8ca524bc29724b333b6a37cc2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a9fb54ba8ca524bc29724b333b6a37cc2">convert_o0o1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>w</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function converts the double precision floating point numbers which distribute uniformly in the range [1, 2) to those which distribute uniformly in the range (0, 1). </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">w</td><td>128bit stracture of double precision floating point numbers (I/O) </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="union_w128___t.html#af1781b30d4052a0832fb7e7cd992cb75">W128_T::d</a>, and <a class="el" href="union_w128___t.html#a5f9319b0fdb9a62cc93fb5aade53e641">W128_T::u</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a2bad2f5ded750e7c250a121cdb61166e">gen_rand_array_o0o1()</a>.</p>

</div>
</div>
<a class="anchor" id="a91cef405a85910d4e56b4a1d10fb89f1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>init_key</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>key_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mexp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function initializes the internal state array, with an array of 32-bit integers used as the seeds. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">init_key</td><td>the array of 32-bit integers, used as a seed. </td></tr>
    <tr><td class="paramname">key_length</td><td>the length of init_key. </td></tr>
    <tr><td class="paramname">mexp</td><td>caller's mersenne expornent </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>, <a class="el" href="struct_d_s_f_m_t___t.html#a776de3ff937f19d246e7edce2676981a">DSFMT_T::idx</a>, <a class="el" href="d_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="d_s_f_m_t_8c.html#afe0e4e5727d9188f5ae1632da731d412">ini_func1()</a>, <a class="el" href="d_s_f_m_t_8c.html#a8da6197e2fe073abb9016e3cf4822807">ini_func2()</a>, <a class="el" href="d_s_f_m_t_8c.html#a95a1673e2b7b3a48a7eab8fa19e18e1d">initial_mask()</a>, <a class="el" href="d_s_f_m_t_8c.html#a8c0334eb83e12d16f2cfe48929114e44">period_certification()</a>, <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>, and <a class="el" href="union_w128___t.html#a0fe5abc7066ccd41c10cbc6ad9d44195">W128_T::u32</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a0914ba62e9a46b6a1f04f27caa83ba87">dsfmt_init_by_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a2fa6a84095a280a4e1556415f3d4f259"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#a2fa6a84095a280a4e1556415f3d4f259">dsfmt_chk_init_gen_rand</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>seed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mexp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function initializes the internal state array with a 32-bit integer seed. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">seed</td><td>a 32-bit integer used as the seed. </td></tr>
    <tr><td class="paramname">mexp</td><td>caller's mersenne expornent </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>, <a class="el" href="struct_d_s_f_m_t___t.html#a776de3ff937f19d246e7edce2676981a">DSFMT_T::idx</a>, <a class="el" href="d_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="d_s_f_m_t_8c.html#a95a1673e2b7b3a48a7eab8fa19e18e1d">initial_mask()</a>, <a class="el" href="d_s_f_m_t_8c.html#a8c0334eb83e12d16f2cfe48929114e44">period_certification()</a>, <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>, and <a class="el" href="union_w128___t.html#a0fe5abc7066ccd41c10cbc6ad9d44195">W128_T::u32</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a8df497c74e469b5f42e8a22d93124d41">dsfmt_init_gen_rand()</a>.</p>

</div>
</div>
<a class="anchor" id="abeef257039f3b95b7475bbecdb521b89"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#abeef257039f3b95b7475bbecdb521b89">dsfmt_fill_array_close1_open2</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates double precision floating point pseudorandom numbers which distribute in the range [1, 2) to the specified array[] by one call. </p>
<p>The number of pseudorandom numbers is specified by the argument <b>size</b>, which must be at least (SFMT_MEXP / 128) * 2 and a multiple of two. The function <a class="el" href="d_s_f_m_t_8h.html#a75ebedeed1c3d5e8576c53e5ce215fea" title="This function is just the same as dsfmt_get_min_array_size().">get_min_array_size()</a> returns this minimum size. The generation by this function is much faster than the following fill_array_xxx functions.</p>
<p>For initialization, <a class="el" href="d_s_f_m_t_8h.html#a985425dba38a16554d3f2a9ee3a41e1b" title="This function is just the same as dsfmt_gv_init_gen_rand().">init_gen_rand()</a> or <a class="el" href="d_s_f_m_t_8h.html#a5f12cfe61e34b29a9c4f88f097712205" title="This function is just the same as dsfmt_gv_init_by_array().">init_by_array()</a> must be called before the first call of this function. This function can not be used after calling genrand_xxx functions, without initialization.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an array where pseudorandom numbers are filled by this function. The pointer to the array must be "aligned" (namely, must be a multiple of 16) in the SIMD version, since it refers to the address of a 128-bit integer. In the standard C version, the pointer is arbitrary.</td></tr>
    <tr><td class="paramname">size</td><td>the number of 64-bit pseudorandom integers to be generated. size must be a multiple of 2, and greater than or equal to (SFMT_MEXP / 128) * 2.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note:</dt><dd><b>memalign</b> or <b>posix_memalign</b> is available to get aligned memory. Mac OSX doesn't have these functions, but <b>malloc</b> of OSX returns the pointer to the aligned memory block. </dd></dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>, and <a class="el" href="d_s_f_m_t_8c.html#aa56a7244d54e2e8bb162a91ebe098e65">gen_rand_array_c1o2()</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#ae0ed5a2ba6eb6f21fa591a54020af3ac">dsfmt_gv_fill_array_close1_open2()</a>.</p>

</div>
</div>
<a class="anchor" id="a243fb9ed1b61233f3dba4ab15c541eb0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#a243fb9ed1b61233f3dba4ab15c541eb0">dsfmt_fill_array_close_open</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates double precision floating point pseudorandom numbers which distribute in the range [0, 1) to the specified array[] by one call. </p>
<p>This function is the same as <a class="el" href="d_s_f_m_t_8h.html#a98e1c0307c01044eb8d1c5136b59af9d" title="This function is juset the same as dsfmt_gv_fill_array_close1_open2().">fill_array_close1_open2()</a> except the distribution range.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">array</td><td>an array where pseudorandom numbers are filled by this function. </td></tr>
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">size</td><td>the number of pseudorandom numbers to be generated. see also </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="d_s_f_m_t_8h.html#a98e1c0307c01044eb8d1c5136b59af9d" title="This function is juset the same as dsfmt_gv_fill_array_close1_open2().">fill_array_close1_open2()</a> </dd></dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>, and <a class="el" href="d_s_f_m_t_8c.html#a0002bc60cd5c3227bd12f478a32463ba">gen_rand_array_c0o1()</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a27e4b624752149e0450056a317d09214">dsfmt_gv_fill_array_close_open()</a>.</p>

</div>
</div>
<a class="anchor" id="a6ad6f12b9a47ea89ceab693b1eec5079"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#a6ad6f12b9a47ea89ceab693b1eec5079">dsfmt_fill_array_open_close</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates double precision floating point pseudorandom numbers which distribute in the range (0, 1] to the specified array[] by one call. </p>
<p>This function is the same as <a class="el" href="d_s_f_m_t_8h.html#a98e1c0307c01044eb8d1c5136b59af9d" title="This function is juset the same as dsfmt_gv_fill_array_close1_open2().">fill_array_close1_open2()</a> except the distribution range.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an array where pseudorandom numbers are filled by this function. </td></tr>
    <tr><td class="paramname">size</td><td>the number of pseudorandom numbers to be generated. see also </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="d_s_f_m_t_8h.html#a98e1c0307c01044eb8d1c5136b59af9d" title="This function is juset the same as dsfmt_gv_fill_array_close1_open2().">fill_array_close1_open2()</a> </dd></dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>, and <a class="el" href="d_s_f_m_t_8c.html#a0905d57b8333da366b25773f0b3c5326">gen_rand_array_o0c1()</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a92deacd8f90f332a130ab5a6fdae8348">dsfmt_gv_fill_array_open_close()</a>.</p>

</div>
</div>
<a class="anchor" id="aeed310e17f9f652c1b0ec86298c834c1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#aeed310e17f9f652c1b0ec86298c834c1">dsfmt_fill_array_open_open</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function generates double precision floating point pseudorandom numbers which distribute in the range (0, 1) to the specified array[] by one call. </p>
<p>This function is the same as <a class="el" href="d_s_f_m_t_8h.html#a98e1c0307c01044eb8d1c5136b59af9d" title="This function is juset the same as dsfmt_gv_fill_array_close1_open2().">fill_array_close1_open2()</a> except the distribution range.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an array where pseudorandom numbers are filled by this function. </td></tr>
    <tr><td class="paramname">size</td><td>the number of pseudorandom numbers to be generated. see also </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="d_s_f_m_t_8h.html#a98e1c0307c01044eb8d1c5136b59af9d" title="This function is juset the same as dsfmt_gv_fill_array_close1_open2().">fill_array_close1_open2()</a> </dd></dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>, and <a class="el" href="d_s_f_m_t_8c.html#a2bad2f5ded750e7c250a121cdb61166e">gen_rand_array_o0o1()</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a871323d18c3525787f63fcf071c4787d">dsfmt_gv_fill_array_open_open()</a>.</p>

</div>
</div>
<a class="anchor" id="afccb1e4d75cea7ffe3b45cba53d1e5e0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="d_s_f_m_t_8c.html#afccb1e4d75cea7ffe3b45cba53d1e5e0">dsfmt_gen_rand_all</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the internal state array with double precision floating point pseudorandom numbers of the IEEE 754 format. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t-common_8h.html#a43e33e2235015c9c072bad7dfe1a282c">do_recursion()</a>, <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, and <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#ae9bb29b63c46e57725dffa776cf930e7">dsfmt_genrand_close1_open2()</a>, <a class="el" href="d_s_f_m_t_8h.html#a147a0a05c969a4cb5d92ce3963b839c2">dsfmt_genrand_open_open()</a>, and <a class="el" href="d_s_f_m_t_8h.html#a49fc44ce077ee57594b8102eb04145d9">dsfmt_genrand_uint32()</a>.</p>

</div>
</div>
<a class="anchor" id="af181eeb77513e5a399dd2c585cfaa055"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="d_s_f_m_t_8c.html#af181eeb77513e5a399dd2c585cfaa055">dsfmt_get_idstring</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the identification string. </p>
<p>The string shows the Mersenne exponent, and all parameters of this generator. </p>
<dl class="section return"><dt>Returns:</dt><dd>id string. </dd></dl>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a2792d3dd76b6ae051d60830b676622ba">get_idstring()</a>.</p>

</div>
</div>
<a class="anchor" id="af49cc1703b4cc1d0bffbd895917c303a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="d_s_f_m_t_8c.html#af49cc1703b4cc1d0bffbd895917c303a">dsfmt_get_min_array_size</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the minimum size of array used for <b>fill_array</b> functions. </p>
<dl class="section return"><dt>Returns:</dt><dd>minimum size of array used for fill_array functions. </dd></dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a36560990b64532b75e95bf5b683599dc">DSFMT_N64</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8h.html#a75ebedeed1c3d5e8576c53e5ce215fea">get_min_array_size()</a>.</p>

</div>
</div>
<a class="anchor" id="a0002bc60cd5c3227bd12f478a32463ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a0002bc60cd5c3227bd12f478a32463ba">gen_rand_array_c0o1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an 128-bit array to be filled by pseudorandom numbers. </td></tr>
    <tr><td class="paramname">size</td><td>number of 128-bit pseudorandom numbers to be generated. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8c.html#a3d69e801f1ee2fbdc3b596fab46e179e">convert_c0o1()</a>, <a class="el" href="d_s_f_m_t-common_8h.html#a43e33e2235015c9c072bad7dfe1a282c">do_recursion()</a>, <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, and <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a243fb9ed1b61233f3dba4ab15c541eb0">dsfmt_fill_array_close_open()</a>.</p>

</div>
</div>
<a class="anchor" id="aa56a7244d54e2e8bb162a91ebe098e65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#aa56a7244d54e2e8bb162a91ebe098e65">gen_rand_array_c1o2</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an 128-bit array to be filled by pseudorandom numbers. </td></tr>
    <tr><td class="paramname">size</td><td>number of 128-bit pseudorandom numbers to be generated. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t-common_8h.html#a43e33e2235015c9c072bad7dfe1a282c">do_recursion()</a>, <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, and <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#abeef257039f3b95b7475bbecdb521b89">dsfmt_fill_array_close1_open2()</a>.</p>

</div>
</div>
<a class="anchor" id="a0905d57b8333da366b25773f0b3c5326"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a0905d57b8333da366b25773f0b3c5326">gen_rand_array_o0c1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an 128-bit array to be filled by pseudorandom numbers. </td></tr>
    <tr><td class="paramname">size</td><td>number of 128-bit pseudorandom numbers to be generated. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8c.html#a6c110f420568ad02e2709f790d3178ef">convert_o0c1()</a>, <a class="el" href="d_s_f_m_t-common_8h.html#a43e33e2235015c9c072bad7dfe1a282c">do_recursion()</a>, <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, and <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a6ad6f12b9a47ea89ceab693b1eec5079">dsfmt_fill_array_open_close()</a>.</p>

</div>
</div>
<a class="anchor" id="a2bad2f5ded750e7c250a121cdb61166e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a2bad2f5ded750e7c250a121cdb61166e">gen_rand_array_o0o1</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the user-specified array with double precision floating point pseudorandom numbers of the IEEE 754 format. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
    <tr><td class="paramname">array</td><td>an 128-bit array to be filled by pseudorandom numbers. </td></tr>
    <tr><td class="paramname">size</td><td>number of 128-bit pseudorandom numbers to be generated. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8c.html#a9fb54ba8ca524bc29724b333b6a37cc2">convert_o0o1()</a>, <a class="el" href="d_s_f_m_t-common_8h.html#a43e33e2235015c9c072bad7dfe1a282c">do_recursion()</a>, <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, and <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#aeed310e17f9f652c1b0ec86298c834c1">dsfmt_fill_array_open_open()</a>.</p>

</div>
</div>
<a class="anchor" id="a6ceeab85133c3fd7ec95aa85523ff544"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int <a class="el" href="d_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function simulate a 32-bit array index overlapped to 64-bit array of LITTLE ENDIAN in BIG ENDIAN machine. </p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array()</a>, and <a class="el" href="d_s_f_m_t_8c.html#a2fa6a84095a280a4e1556415f3d4f259">dsfmt_chk_init_gen_rand()</a>.</p>

</div>
</div>
<a class="anchor" id="afe0e4e5727d9188f5ae1632da731d412"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t <a class="el" href="d_s_f_m_t_8c.html#afe0e4e5727d9188f5ae1632da731d412">ini_func1</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function represents a function used in the initialization by init_by_array. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>32-bit integer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>32-bit integer </dd></dl>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a8da6197e2fe073abb9016e3cf4822807"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t <a class="el" href="d_s_f_m_t_8c.html#a8da6197e2fe073abb9016e3cf4822807">ini_func2</a> </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function represents a function used in the initialization by init_by_array. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>32-bit integer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>32-bit integer </dd></dl>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a95a1673e2b7b3a48a7eab8fa19e18e1d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a95a1673e2b7b3a48a7eab8fa19e18e1d">initial_mask</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function initializes the internal state array to fit the IEEE 754 format. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>, and <a class="el" href="union_w128___t.html#a5f9319b0fdb9a62cc93fb5aade53e641">W128_T::u</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array()</a>, and <a class="el" href="d_s_f_m_t_8c.html#a2fa6a84095a280a4e1556415f3d4f259">dsfmt_chk_init_gen_rand()</a>.</p>

</div>
</div>
<a class="anchor" id="a8c0334eb83e12d16f2cfe48929114e44"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="d_s_f_m_t_8c.html#a8c0334eb83e12d16f2cfe48929114e44">period_certification</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> *&#160;</td>
          <td class="paramname"><em>dsfmt</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function certificate the period of 2^{SFMT_MEXP}-1. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsfmt</td><td>dsfmt state vector. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="d_s_f_m_t_8h.html#a3b6595773bfd02df5481e6a459071a1c">DSFMT_N</a>, <a class="el" href="struct_d_s_f_m_t___t.html#aa7b5e6f3e8e109b75493514525854931">DSFMT_T::status</a>, and <a class="el" href="union_w128___t.html#a5f9319b0fdb9a62cc93fb5aade53e641">W128_T::u</a>.</p>

<p>Referenced by <a class="el" href="d_s_f_m_t_8c.html#a91cef405a85910d4e56b4a1d10fb89f1">dsfmt_chk_init_by_array()</a>, and <a class="el" href="d_s_f_m_t_8c.html#a2fa6a84095a280a4e1556415f3d4f259">dsfmt_chk_init_gen_rand()</a>.</p>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="adfee3c4c3505ddcfc334251f94968737"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="d_s_f_m_t_8h.html#a7e8239b4bedf4e53d5168d21848ab7af">dsfmt_t</a> <a class="el" href="d_s_f_m_t_8c.html#adfee3c4c3505ddcfc334251f94968737">dsfmt_global_data</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>dsfmt internal state vector </p>

</div>
</div>
<a class="anchor" id="a3720bab32cfc7fed812b49d96cde8636"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="d_s_f_m_t_8c.html#a3720bab32cfc7fed812b49d96cde8636">dsfmt_mexp</a> = <a class="el" href="d_s_f_m_t_8h.html#aeda2790c35e4e205219e3c0ef1a2dd0a">DSFMT_MEXP</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>dsfmt mexp for check </p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Fri Jun 29 2012 16:17:32 for dSFMT by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.0
</small></address>

</body>
</html>
